# 之前我们的做法
print('hello %s' % 'world')

# f-string py 3.6 +
name = 'william'
print(f'i am {name}') #i am william
print(F'i am {name}') #i am william

# 甚至做一些运算
int1 = 24
print(f'i am {int1 + 1} years old')
# py 3.8+ 支持拼接
print(f'i am {int1 + 1=} years old') # i am int1 + 1=25 years old

# py string 的依托方法
# https://www.runoob.com/python3/python3-string.html

# 字符串的另一种分割： partition 掐头去尾, 返回元组哦
str1 = 'i am not william'
print(str1.partition('not'))    # ('i am ', 'not', ' william')
print(str1.partition('is'))     # ('i am not william', '', '')

from collections import Counter
Var1 = "1116122137143151617181920849510"
Var2 = "1987262819009787718192084951"
print (Counter(Var1))
print (Counter(Var2))
# Counter({'1': 12, '2': 3, '6': 2, '3': 2, '7': 2, '4': 2, '5': 2, '8': 2, '9': 2, '0': 2})
# Counter({'1': 5, '9': 5, '8': 5, '7': 4, '2': 3, '0': 3, '6': 1, '4': 1, '5': 1})
# 统计字符次数

# isdigit() isnumeric() 允许不止0-9，
# 还有很多各种语言，甚至是古老的，各种样式的
# 二者还有一些差异

# 有意思的 IP 掩码运算
'''
b = '1'
bs_len = len(b)
while bs_len < 9:
    #global b
    b_b=b.ljust(8,'0')
    d=int(b_b,2)
    print('二进制 %s 相当于十进制 %s' %(b_b,d))
    b = b +"1"
    bs_len=len(b)
'''

'''
二进制 10000000 相当于十进制 128
二进制 11000000 相当于十进制 192
二进制 11100000 相当于十进制 224
二进制 11110000 相当于十进制 240
二进制 11111000 相当于十进制 248
二进制 11111100 相当于十进制 252
二进制 11111110 相当于十进制 254
二进制 11111111 相当于十进制 255
'''

# 转换 还是 转换
str2 = 'wengchongyu'
list1 = [ i for i in str2 ]
print(list1)
# ['w', 'e', 'n', 'g', 'c', 'h', 'o', 'n', 'g', 'y', 'u']

print(','.join(list1))
# w,e,n,g,c,h,o,n,g,y,u